1. Field of the Invention
This invention relates generally to distributed software execution, and more particularly to a methods and systems for distributing tasks in a multiple server facility.
2. Description of the Related Art
A server farm is a group of networked servers that are housed in one location. A server farm typically streamlines internal processes by distributing the workload between the individual servers and other components of the farm. The server farm can also expedite computing processes by efficiently harnessing the power of the multiple computers (e.g., multiple servers). FIG. 1 shows a block diagram of a typical, prior art server farm 100. The server farm 100 includes multiple servers 102A-n, which are networked together by a network 104. The server farm 100 can also include input/output systems 108 for interfacing and networking the server farm 100 to other computers or computer networks (e.g., Internet, LAN, WAN, etc.). The server farm 100 can also include other devices 110 such as may be necessary for the particular demands of the server farm 100.
The server farm is controlled by a control system 106. The control system 106 is typically a separate controlling computer that includes controlling software 106A. The controlling software 106A is typically specifically designed for the precise needs and design of the server farm 100. The controlling software 106A accomplishes such tasks as load balancing, tracking demand for processing power from the different servers 102A-n, prioritizing the tasks input to the server farm 100 and scheduling and rescheduling the tasks depending on priority and demand that users place on the server farm 100. The control system 106 can also automatically replace a failed server (e.g., server 102A) with another server (e.g., server 102B), when the failed server 102A fails.
Combining servers and processing power into a single server farm 100 has been relatively common for many years in research and academic institutions. However server farms are becoming more and more common as companies are utilizing server farms as a way of handling the enormous amount of computerization of tasks and services that the particular company may require.
The typical prior art server farm control system software 106A includes multiple low-level applications that are specifically designed for the specific hardware and software configuration of each of the individual servers 102A-n and the server farm 100. As server farms become more and more common, the specialization and customization of the control system software 106A becomes more problematic. Each implementation of the typical low level, very specifically designed control system software 106A is very complicated. The complications arise due to the individual, specific hardware and software configuration of the server farm 100. The implementation of the specifically designed control system software 106A is repetitive because many server farms have common requirements. Therefore, customized, low-level control system software 106A is very inefficient and unnecessarily difficult.
In addition, the typical, customized, low-level control system software 106A also uses a very specialized (often customized), low-level script such as a shell script and/or other scripts to define a task. The tasks are therefore limited to low-level functions which therefore resulting in complex, specialized tasks to accomplish complex functions.
There are two problems with the very specialized (often customized), low level scripts. First, all tasks must be submitted in the specialized low-level format which requires add complication for entering tasks. Second the tasks are specialized rather than a standard language format that could be used more easily. This can be especially troubling as the number of server farms increases and the number of different task systems grows.
What is needed is and easier-to-implement server farm control system software that includes a more standardized task system that more both easier to use and more easily supports complex tasks.